home *** CD-ROM | disk | FTP | other *** search
/ Kittens to Cats / Kittens to Cats.iso / setup.mst < prev    next >
Text File  |  1993-11-18  |  9KB  |  264 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST EXITFAILURE   = 400
  12. CONST EXITQUIT      = 600
  13. CONST EXITSUCCESS   = 700
  14. CONST APPHELP       = 900
  15. CONST CHECK         = 2500
  16. CONST SMALLWIN      = 2200
  17. CONST RESTART       = 2600
  18. CONST RESTARTII     = 2700
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 3
  22.  
  23. GLOBAL SizeReq&  '' Total Disk Size required for installation
  24.  
  25. ''File Types
  26. GLOBAL SrcDir$
  27. GLOBAL PathDir$
  28. GLOBAL VidDir$
  29. GLOBAL WinDir$
  30. GLOBAL WinSysDir$
  31. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  32. GLOBAL CHECKSTATES$
  33.  
  34. DECLARE SUB Install
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  37. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  38. DECLARE SUB Reboot LIB "iniupd.dll"
  39. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  40.  
  41. INIT:
  42.   
  43.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  44.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  45.     
  46.     WIN32ENABLED% = 0
  47.     MajorVer% = GetWindowsMajorVersion()
  48.     MinorVer% = GetWindowsMinorVersion()
  49.  
  50.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  51.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  52.     END
  53.     END IF
  54.  
  55.     IF OnWindowsNT() THEN
  56.       i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  57.       END
  58.     END IF
  59.  
  60.     SetBitmap CUIDLL$, LOGO
  61.     SetTitle "Kittens to Cats Setup"
  62.  
  63.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  64.     IF szInf$ = "" THEN
  65.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  66.     END IF
  67.     ReadInfFile szInf$
  68.  
  69.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  70.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  71.     PathDir$ = SrcDir$+"VCS"
  72.     VidDir$ = SrcDir$+"VIDTEST"
  73.  
  74. WELCOME:
  75.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  76.     IF sz$ = "CONTINUE" THEN
  77.        UIPop 1
  78.      ELSE
  79.     GOSUB ASKQUIT
  80.     GOTO WELCOME
  81.     END IF
  82.  
  83. ''Prepare Copy list and check size
  84.  
  85.     ClearCopyList
  86.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  87.     WinDir$ = GetWindowsDir()
  88.     DEST$ = GetWindowsDir()
  89.     WinSysDir$ = GetWindowsSysDir()
  90.  
  91. ''  Runtime files (on Windows disk)
  92.  
  93.     AddSectionFilesToCopyList "Prog-dll", SrcDir$, WinSysDir$
  94.     AddSectionFilesToCopyList "Prog-ini", SrcDir$, WinDir$
  95.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  96.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  97.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  98.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  99.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  100.     AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$
  101.  
  102. ''  Check windrive diskspace
  103.     SizeReq& = GetCopyListCost ("","", "")
  104.     IF SizeReq& <> 0 THEN
  105.     GOSUB SMALLWIN
  106.     END
  107.     END IF
  108.  
  109. Install
  110.  
  111. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  112. '' else, it gives the user the choice
  113.     RESTRT% = RestartListEmpty ()
  114.     Exe$ = DEST$ + "\_msrstrt.exe"
  115.     Batch$ = DEST$ + "\_mssetup.bat"
  116.     empty$ = ""
  117. RESTART:
  118.     IF RESTRT% = 0 THEN
  119.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  120.        IF sz$ = "REACTIVATE" THEN
  121.       GOTO RESTART
  122.        ENDIF
  123.        I% = ExitExecRestart ()
  124.        RemoveFile Exe$, cmoForce
  125.        RemoveFile Batch$, cmoForce
  126.        END
  127.     ELSE
  128.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  129.        IF sz$ = "CONTINUE" THEN
  130.       I% = ExitWindowsExec (Exe$, empty$)
  131.       IF I% = 0 THEN
  132.          GOTO RESTART
  133.       ELSE
  134.          END
  135.      ENDIF
  136.        ELSEIF sz$ = "EXIT" THEN
  137.       UIPopAll
  138.       END
  139.        ELSEIF sz$ = "REACTIVATE" THEN
  140.       GOTO RESTART
  141.        ELSE
  142.       UIPop 1
  143.        END IF
  144.     END IF
  145.  
  146.  
  147. QUIT:
  148.     ON ERROR GOTO ERRQUIT
  149.  
  150.     IF ERR = 0 THEN
  151.     dlg% = EXITSUCCESS
  152.     ELSEIF ERR = STFQUIT THEN
  153.     dlg% = EXITQUIT
  154.     ELSE
  155.     dlg% = EXITFAILURE
  156.     END IF
  157. QUITL1:
  158.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  159.     IF sz$ = "REACTIVATE" THEN
  160.     GOTO QUITL1
  161.     END IF
  162.     UIPop 1
  163.     END
  164.  
  165. ERRQUIT:
  166.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  167.     END
  168.  
  169.  
  170. ASKQUIT:
  171.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  172.  
  173.     IF sz$ = "EXIT" THEN
  174.     UIPopAll
  175. ''        ERROR STFQUIT
  176.     END
  177.     ELSEIF sz$ = "REACTIVATE" THEN
  178.     GOTO ASKQUIT
  179.     ELSE
  180.     UIPop 1
  181.     END IF
  182.     RETURN
  183.  
  184. SMALLWIN:
  185.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  186.     IF sz$ = "REACTIVATE" THEN
  187.     GOTO SMALLWIN
  188.     END IF
  189.     UIPop 1
  190.     RETURN
  191.  
  192. '**
  193. '** Purpose:
  194. '**     Performs all installation operations.
  195. '** Arguments:
  196. '**     none.
  197. '** Returns:
  198. '**     none.
  199. '*************************************************************************
  200. SUB Install STATIC
  201.  
  202.     SetRestartDir WinDir$
  203.     CopyFilesInCopyList
  204.  
  205. ''Updating WIN.INI and SYSTEM.INI
  206.     IF VflatdPresent() = 0 THEN
  207.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  208.     END IF
  209.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  210.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  211.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  212.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  213.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  214.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  215.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  216.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  217.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  218.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  219.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  220.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  221.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  222.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  223.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  224.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  225.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  226.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  227.  
  228. '' Mplayer
  229.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  230. '** PROGRAM
  231.     CreateProgmanGroup "Kittens to Cats", "", cmoNone
  232.     ShowProgmanGroup  "Kittens to Cats", 1, cmoNone
  233.     CreateProgmanItem "Kittens to Cats", "Kittens to Cats", MakePath(PathDir$, "cats.EXE"), "", cmoOverwrite
  234.     CreateProgmanItem "Kittens to Cats", "Other VCS Products", MakePath(PathDir$, "VCSDEMO.EXE"), "", cmoOverwrite
  235.     CreateProgmanItem "Kittens to Cats", "Video Test", MakePath(VidDir$, "VIDTEST.EXE"), "", cmoOverwrite
  236.     CreateProgmanItem "Kittens to Cats", "256 Color driver Release Notes", MakePath(WinDir$, "NOTEPAD.EXE "+SrcDir$+"DRIVERS\README.TXT"), "NOTEPAD.EXE,0,,,"+SrcDir$, cmoOverwrite
  237.     CreateProgmanItem "Kittens to Cats", "Kittens to Cats Help", MakePath(WinDir$, "WINHELP.EXE "+SrcDir$+"VCS\cats.HLP"), ",,,,"+SrcDir$, cmoOverwrite
  238.  
  239.     Run ("profdisp.exe")   
  240. END SUB
  241.  
  242. '**
  243. '** Purpose:
  244. '**     Appends a file name to the end of a directory path,
  245. '**     inserting a backslash character as needed.
  246. '** Arguments:
  247. '**     szDir$  - full directory path (with optional ending "\")
  248. '**     szFile$ - filename to append to directory
  249. '** Returns:
  250. '**     Resulting fully qualified path name.
  251. '*************************************************************************
  252. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  253.     IF szDir$ = "" THEN
  254.     MakePath = szFile$
  255.     ELSEIF szFile$ = "" THEN
  256.     MakePath = szDir$
  257.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  258.     MakePath = szDir$ + szFile$
  259.     ELSE
  260.     MakePath = szDir$ + "\" + szFile$
  261.     END IF
  262. END FUNCTION
  263.  
  264.